
/*
*Released on 28th June 2008.
*Any violations can be reported at paritosh@wikiocean.net
*What is treated as violations can be found at www.wikiocean.net/ppl1-voilations*
******************************************************************************
* The contents of this file are subject to POOL Public License 1.0 and later.
* POOL Public License is based on Affero GPL v3 and additional conditions.
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the Affero GPL v3 License at http://www.gnu.org/licenses/agpl.html
* You may obtain a copy of the POOL Public License 1.0 or later at www.wikiocean.net/license/ppl.html
* Software distributed under POOL Public License 1.0 is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Initial Developer of the Original Code is Paritosh Pungaliya (C) 2008. All Rights Reserved.
******************************************************************************
* Objective of the additional terms (license)
* 1) Is to extend the software freedom to freedom to work.
* 2) To ensure that knowledge is free from monopoly of agencies.
* 3) To avoid a situation where big corporate or investor can buy out free software groups and companies and then start milking the communities built around it.
* (this trend can be seen how the freedom is curtailed in companies that get Venture Capital funding.)
******************************************************************************
*/

package  guidatatag;


import guiregistration.GenerateMasterCommand;
import guireportgenerator.MaxId;

import java.io.*;
import java.util.*;

import dbmanager.DBManager;
import dbmanager.GetIdName;

import utility.Input;

public class Displaytext implements TagInterface
{
	String text,maxid;
	GetIdName get;
	MaxId max;
	String username,password;
	public void setdata(Object obj,String username, String password) 
	{
		this.text = (String)obj;
		get = new GetIdName();
		max = new MaxId();
                this.username = username;
                this.password = password;
	}	
	
	public String getData() 
	{
        LinkedHashMap<Object,LinkedList<Object>> HtmlTags= new LinkedHashMap<Object, LinkedList<Object>>();
		LinkedList<Object> displaytextPropList = new LinkedList<Object>();
        String TagCount = max.getMaxId();
        String Displaytext= "displaytext_"+String.valueOf(TagCount);
        
        displaytextPropList.add("type\tdisplaytext\t0");
        
        if(text.length() <80)
   		{
            displaytextPropList.add("text\t"+text+"\t1");
   	   		HtmlTags.put(Displaytext,displaytextPropList);
   	   		System.out.println(HtmlTags);
            GenerateMasterCommand gen = new GenerateMasterCommand(Displaytext, HtmlTags);
            gen.setUsername(username);
            gen.setPassword(password);
            gen.register();
   		}
   		else
   		{
   			String filename = "File_"+String.valueOf(TagCount+1);
   			String DisplaytextFilePath = new String(Input.DISPLAYTEXT_FILES+filename);
   			File DisplaytextFile = new File(DisplaytextFilePath+Input.FILRFORMAT);
   	   		
   	   		if(!DisplaytextFile.exists())
   	   		{
   	   			try {
						if(DisplaytextFile.createNewFile())
						{
							System.out.println("File created");
							
							FileWriter fw =new FileWriter(DisplaytextFile);
							String [] lines = text.split("\n");
							for(int i=0;i<lines.length;i++)
								fw.write(lines[i]);
							fw.close();							
						}
						else
							System.out.println("File not created");
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
   	   		}
   	   		
   	   		String storage = new String("storage_"+String.valueOf(TagCount+1));
   	   		LinkedList<Object> StoragePropList = new LinkedList<Object>();
   	   		StoragePropList.add("type\tstorage\t0");
   	   		StoragePropList.add("path\ttextfiles//"+filename+"\t1");
   	   		HtmlTags.put(storage, StoragePropList);
   	   		
   	   		String report = new String("report_"+String.valueOf(TagCount+2));
   	   		LinkedList<Object> ReportPropList = new LinkedList<Object>();
   	   		ReportPropList.add("type\treport\t0");
   	   		ReportPropList.add("storage\t"+storage+"\t1");
   	   		HtmlTags.put(report, ReportPropList);
   	   		
   	   		displaytextPropList.add("report\t"+report+"\t1");
   	   		HtmlTags.put(Displaytext,displaytextPropList);   	
            System.out.println(HtmlTags);
            GenerateMasterCommand gen = new GenerateMasterCommand(report, HtmlTags);
            gen.setUsername(username);
            gen.setPassword(password);
            gen.register();
        }
                
		return Displaytext;
	}
	
	/*public static void main(String[] args) 
	{
		String text = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
		DBManager db = new DBManager();
		db.getConnect();
		
		Displaytext dis = new Displaytext();
		dis.setdata(text, db);
		System.out.println(dis.getData());		
	}*/

	
	

}
